#include <stdio.h>
int main()
{
	char killer;
	for (killer = 'A'; killer <= 'D'; killer++)
	{
		if (((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D')) == 3)
		{
			printf("c是凶手\n", killer);
			break;//找到了就直接跳出循环，后面的就不需要进行检查判断了
		}
	}


	return 0;
}
//分析一下最难的一句代码
//if (((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D')) == 3)
/*
当killer=A的时候
killer != 'A'的值就是0，killer == 'C'为0，killer == 'D'为0，killer ！= 'D'为1
只有一人说真话

当killer=B的时候
killer != 'A'的值就是1，killer == 'C'为0，killer == 'D'为0，killer ！= 'D'为1
只有两人说真话

当killer=C的时候
killer != 'A'的值就是1,killer == 'C'为1,killer == 'D'为0，killer ！= 'D'为1
只有三人说真话

当killer=D的时候
killer != 'A'的值就是1,killer == 'C'为0,killer == 'D'为1，killer ！= 'D'为0
只有两人说真话


巧妙的利用ASCII从A到D进行循环比较


题目：日本某地发生了一件谋杀案，警察通过排查确定杀人凶手必为4个嫌疑犯的一个。   
以下为4个嫌疑犯的供词:    
A说：不是我。  B说：是C。  C说：是D。  D说：C在胡说  
已知3个人说了真话，1个人说的是假话。  
现在请根据这些信息，写一个c语言程序来确定到底谁是凶手。
*/